package com.tdam2013.grupo12.adapters;

import java.util.ArrayList;
import java.util.zip.Inflater;

import com.tdam2013.grupo12.R;
import com.tdam2013.grupo12.R.id;
import com.tdam2013.grupo12.R.layout;
import com.tdam2013.grupo12.clasesDeNegocio.BaseDeDatos;
import com.tdam2013.grupo12.clasesDeNegocio.Contacto;

import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class ContactosAdapter extends BaseAdapter {
	
	private ArrayList<Contacto> contactos;
	private LayoutInflater inflater;
	private BaseDeDatos bd;
	
	public ContactosAdapter(Context c) {
		contactos = new ArrayList<Contacto>();
		inflater = LayoutInflater.from(c);
		bd = new BaseDeDatos(c);
	}

	public void addContacto(Contacto c) {
		if (c != null) {
			contactos.add(c);
		}
	}
	
	public void setContactos(ArrayList<Contacto> contactos){
		this.contactos = contactos;
	}
	
	public ArrayList<Contacto> getContactos(){
		return contactos;
	}
	
	
	@Override
	public int getCount() {
		return contactos.size();
	}

	@Override
	public Object getItem(int position) {
		return contactos.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	class ContactoHolder{
		TextView nombreContacto;
		ImageView telefono;
		ImageView mensaje;
		ImageView mail;
		ImageView servicioWeb;
	}
	
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ContactoHolder holder;
		if (convertView == null) {
			convertView = inflater.inflate(R.layout.activity_item_contacto, null);
			holder = new ContactoHolder();
			holder.nombreContacto = (TextView) convertView
					.findViewById(R.id.nombreContacto);
			holder.mensaje = (ImageView) convertView
					.findViewById(R.id.mensaje);
			holder.mail = (ImageView) convertView
					.findViewById(R.id.mail);
			holder.telefono = (ImageView) convertView
					.findViewById(R.id.llamada);
			holder.servicioWeb = (ImageView) convertView
					.findViewById(R.id.mensajeWeb);
			convertView.setTag(holder);
		} else {
			holder = (ContactoHolder) convertView.getTag();
		}
		
		holder.nombreContacto.setText(contactos.get(position).getNombre());
		if(contactos.get(position).getTelefonos().isEmpty()){
			holder.mensaje.setVisibility(View.GONE);
			holder.telefono.setVisibility(View.GONE);
		}else{
			holder.mensaje.setVisibility(View.VISIBLE);
			holder.telefono.setVisibility(View.VISIBLE);
		}
		if(contactos.get(position).getEmails().isEmpty()){
			holder.mail.setVisibility(View.GONE);
		}else{
			holder.mail.setVisibility(View.VISIBLE);
		}
		if(contactos.get(position).getUsuarioWeb() == null || contactos.get(position).getUsuarioWeb().isEmpty()){
			holder.servicioWeb.setVisibility(View.GONE);
		}else{
			holder.servicioWeb.setVisibility(View.VISIBLE);
			if(bd.tieneMensajesNuevos(contactos.get(position).getUsuarioWeb())){
				holder.servicioWeb.setBackgroundColor(Color.GREEN);
			}else{
				holder.servicioWeb.setBackgroundColor(Color.TRANSPARENT);
			}
		}
		
		return convertView;
	}

}
